package io.renren.common.utils;

/**
 * @author 40659
 */
public class NumberUtils {
    public static void main(String[] args) {
        double number = 20;
        String result = numberToUpperCase(number);
        System.out.println(result);
    }

    public static String numberToUpperCase(double number) {
        String[] digits = {"", "一", "二", "三", "四", "五", "六", "七", "八", "九"};
        String[] units = {"", "十", "百", "千", "万"};
        String[] decimals = {"角", "分"};

        // 保留两位小数
        String str = String.format("%.2f", number);
        // 整数部分
        String integerPart = str.split("\\.")[0];
        // 小数部分
        String decimalPart = str.split("\\.")[1];

        StringBuilder result = new StringBuilder();
        // 处理整数部分
        for (int i = integerPart.length() - 1; i >= 0; i--) {
            int digit = Integer.parseInt(String.valueOf(integerPart.charAt(i)));
            if (digit != 0) {
                result.insert(0, digits[digit]);
                result.insert(1, units[(integerPart.length() - 1 - i) % 4]);
            }
        }
//        result.append("元");

        // 处理小数部分
        int decimalDigit1 = Integer.parseInt(String.valueOf(decimalPart.charAt(0)));
        int decimalDigit2 = Integer.parseInt(String.valueOf(decimalPart.charAt(1)));

        if (decimalDigit1 != 0) {
            result.append(digits[decimalDigit1]).append(decimals[0]);
        }
        if (decimalDigit2 != 0) {
            result.append(digits[decimalDigit2]).append(decimals[1]);
        }

        return result.toString();
    }
}
